using System;
using System.Collections.Generic;
using Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Servicos.Contratos;
using Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Entidades;

namespace Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Servicos.ServiceImplementation.Translator
{
    /// <summary>
    /// Realiza traducao entre contrato "Usuario" e entidade "Usuario".
    /// </summary>
    public class TradutorUsuario
    {
        /// <summary>
        /// Converte entidade "Usuario" em contrato "Usuario".
        /// </summary>
        public Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Servicos.Contratos.Usuario Traduzir(Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Entidades.Usuario origem)
        {
            Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Servicos.Contratos.Usuario destino = new Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Servicos.Contratos.Usuario();
            destino.Codigo = origem.Codigo;
            destino.Nome = origem.Nome;
            return destino;
        }

        /// <summary>
        /// Converte entidade "Usuario" em contrato "Usuario".
        /// </summary>
        public List<Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Servicos.Contratos.Usuario> Traduzir(List<Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Entidades.Usuario> origem)
        {
            List<Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Servicos.Contratos.Usuario> destino = new List<Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Servicos.Contratos.Usuario>();
            for (int idx = 0; idx < origem.Count; idx++)
            {
                destino.Add(Traduzir(origem[idx]));
            }

            return destino;
        }

        /// <summary>
        /// Converte contrato "Usuario" em entidade "Usuario".
        /// </summary>
        public Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Entidades.Usuario Traduzir(Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Servicos.Contratos.Usuario origem)
        {
            Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Entidades.Usuario destino = new Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Entidades.Usuario();
            destino.Codigo = origem.Codigo;
            destino.Nome = origem.Nome;
            return destino;
        }

        /// <summary>
        /// Converte contrato "Usuario" em entidade "Usuario".
        /// </summary>
        public List<Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Entidades.Usuario> Traduzir(List<Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Servicos.Contratos.Usuario> origem)
        {
            List<Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Entidades.Usuario> destino = new List<Bovespa.Sinacor.Servico.BaseConhecimento.Usuario.Entidades.Usuario>();
            for (int idx = 0; idx < origem.Count; idx++)
            {
                destino.Add(Traduzir(origem[idx]));
            }

            return destino;
        }
    }
}

